home *** CD-ROM | disk | FTP | other *** search
/ A Teacher's Guide to the Holocaust / A Teacher's Guide to the Holocaust.iso / data / people / scripts / behtimeline.js < prev    next >
Text File  |  1999-12-05  |  4KB  |  69 lines

  1. function MM_timelineGoto(tmLnName, fNew, numGotos) { //v2.0
  2.   //Copyright 1997 Macromedia, Inc. All rights reserved.
  3.   var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,lastKeyFr,propNum,theObj;
  4.   if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  5.   tmLn = document.MM_Time[tmLnName];
  6.   if (numGotos != null)
  7.     if (tmLn.gotoCount == null) tmLn.gotoCount = 1;
  8.     else if (tmLn.gotoCount++ >= numGotos) {tmLn.gotoCount=0; return}
  9.   jmpFwd = (fNew > tmLn.curFrame);
  10.   for (i = 0; i < tmLn.length; i++) {
  11.     sprite = (jmpFwd)? tmLn[i] : tmLn[(tmLn.length-1)-i]; //count bkwds if jumping back
  12.     if (sprite.charAt(0) == "s") {
  13.       numKeyFr = sprite.keyFrames.length;
  14.       firstKeyFr = sprite.keyFrames[0];
  15.       lastKeyFr = sprite.keyFrames[numKeyFr - 1];
  16.       if ((jmpFwd && fNew<firstKeyFr) || (!jmpFwd && lastKeyFr<fNew)) continue; //skip if untouchd
  17.       for (keyFrm=1; keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]; keyFrm++);
  18.       for (j=0; j<sprite.values.length; j++) {
  19.         props = sprite.values[j];
  20.         if (numKeyFr == props.length) propNum = keyFrm-1 //keyframes only
  21.         else propNum = Math.min(Math.max(0,fNew-firstKeyFr),props.length-1); //or keep in legal range
  22.         if (sprite.obj != null) {
  23.           if (props.prop2 == null) sprite.obj[props.prop] = props[propNum];
  24.           else        sprite.obj[props.prop2][props.prop] = props[propNum];
  25.       } }
  26.     } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
  27.   }
  28.   tmLn.curFrame = fNew;
  29.   if (tmLn.ID == 0) eval('MM_timelinePlay(tmLnName)');
  30. }
  31. function MM_timelinePlay(tmLnName, myID) { //v1.2
  32.   //Copyright 1997 Macromedia, Inc. All rights reserved.
  33.   var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  34.   if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  35.   tmLn = document.MM_Time[tmLnName];
  36.   if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  37.   if (myID == tmLn.ID) { //if Im newest
  38.     setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
  39.     fNew = ++tmLn.curFrame;
  40.     for (i=0; i<tmLn.length; i++) {
  41.       sprite = tmLn[i];
  42.       if (sprite.charAt(0) == 's') {
  43.         if (sprite.obj) {
  44.           numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
  45.           if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
  46.             keyFrm=1;
  47.             for (j=0; j<sprite.values.length; j++) {
  48.               props = sprite.values[j]; 
  49.               if (numKeyFr != props.length) {
  50.                 if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
  51.                 else        sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
  52.               } else {
  53.                 while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
  54.                 if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
  55.                   if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
  56.                   else        sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
  57.         } } } } }
  58.       } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
  59.       if (fNew > tmLn.lastFrame) tmLn.ID = 0;
  60.   } }
  61. }
  62. function MM_timelineStop(tmLnName) { //v1.2
  63.   //Copyright 1997 Macromedia, Inc. All rights reserved.
  64.   if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  65.   if (tmLnName == null)  //stop all
  66.     for (var i=0; i<document.MM_Time.length; i++) document.MM_Time[i].ID = null;
  67.   else document.MM_Time[tmLnName].ID = null; //stop one
  68. }
  69.